#include<iostream>
#include<unordered_map>
using namespace std;
const int N=30;
int n;
int k;
int a[N];
int st[N];
int arr[N];
unordered_map<int,int> b;
int ans;
bool check(int sum)
{
    if(sum==1)return 0;
    for(int i=2;i<=sum/i;i++)
    {
        if(sum%i==0)
        {
            return 0;
        }
    }
    return 1;
}
void dfs(int x,int s)
{
  if(x-1+(n-s+1)<k) return ;
 if(x>k)
 {
    int sum=0;
      for(int i=1;i<=k;i++)
      {
     sum+=arr[i];
      }

      ans+=check(sum);
      return ;
 }
 for(int i=s;i<=n;i++)
 {
  arr[x]=a[i];
  dfs(x+1,i+1);
  arr[x]=0;
 }
}
int main()
{

cin>>n>>k;
for(int i=1;i<=n;i++)
{
    cin>>a[i];
}
dfs(1,1);
cout<<ans;
    return 0;
}